package com.spider.utils;

import com.spider.entites.User;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.JwtParser;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

/**
 * @author panglin
 * @date 2020/11/19 10:51
 */
public class JwtUtils {

    public static String token(User user) {
        return Jwts.builder()
                .setSubject(user.getName())     //设置用户信息
                .setId(user.getId() + "")             //设置用ID
                .setIssuedAt(new Date())            //设置token的创建时间
//                .setExpiration(new Date(System.currentTimeMillis() + 60 * 1000))  //设置过期时间
                .signWith(SignatureAlgorithm.HS256, user.getSalt())  //加密方式及key
                .compact();
    }

    public static String parse(String token){
        JwtParser parser = Jwts.parser();
        parser.setSigningKey("spider");
        Jws<Claims> claimsJws = parser.parseClaimsJws(token);
        Claims body = claimsJws.getBody();
        return body.getSubject();
    }
}
